package dict

import (
	"time"

	"gorm.io/gorm"
)

// Dict 字典
type Dict struct {
	ID          uint           `gorm:"primarykey" json:"id"`
	TenantID    uint           `gorm:"not null;index" json:"tenant_id"` // 租户ID
	Name        string         `gorm:"size:50;not null" json:"name"`    // 字典名称
	Code        string         `gorm:"size:50;not null" json:"code"`    // 字典编码
	Status      int            `gorm:"default:1" json:"status"`         // 状态：1-正常，0-禁用
	Description string         `gorm:"size:200" json:"description"`     // 描述
	CreatedAt   time.Time      `json:"created_at"`
	UpdatedAt   time.Time      `json:"updated_at"`
	DeletedAt   gorm.DeletedAt `gorm:"index" json:"-"`
}

func (Dict) TableName() string {
	return "system_dict"
}

// DictItem 字典项
type DictItem struct {
	ID          uint           `gorm:"primarykey" json:"id"`
	TenantID    uint           `gorm:"not null;index" json:"tenant_id"` // 租户ID
	DictID      uint           `gorm:"not null;index" json:"dict_id"`   // 字典ID
	Label       string         `gorm:"size:50;not null" json:"label"`   // 标签
	Value       string         `gorm:"size:50;not null" json:"value"`   // 值
	Sort        int            `gorm:"default:0" json:"sort"`           // 排序
	Status      int            `gorm:"default:1" json:"status"`         // 状态：1-正常，0-禁用
	Description string         `gorm:"size:200" json:"description"`     // 描述
	CreatedAt   time.Time      `json:"created_at"`
	UpdatedAt   time.Time      `json:"updated_at"`
	DeletedAt   gorm.DeletedAt `gorm:"index" json:"-"`
}

func (DictItem) TableName() string {
	return "system_dict_item"
}
